﻿#define _CRT_SECURE_NO_WARNINGS 1
#include"priorityqueue.h"

//int main()
//{
    /*study::priority_queue<int> mypq;
    mypq.push(30);
    mypq.push(100);
    mypq.push(25);
    mypq.push(40);

    std::cout << "Popping out elements...";
    while (!mypq.empty())
    {
        std::cout << ' ' << mypq.top();
        mypq.pop();
    }
    std::cout << '\n';*/

  /*  study::priority_queue<int> myints;
    std::cout << "0. size: " << myints.size() << '\n';

    for (int i = 0; i < 5; i++) 
        myints.push(i);
    std::cout << "1. size: " << myints.size() << '\n';

    myints.pop();
    std::cout << "2. size: " << myints.size() << '\n';*/
//
//    return 0;
//}


    //class study
    //{
    //    //template<class T1, T2>;
    //    //template<typename T1, T2>;
    //    //template<class T1, typename T2>;
    //    //<typename T1, class T2>
    //    template<typeaname T1, typename T2, size_t N>;
    //    template<size_t N>;
    //};
    //int main()
    //{
    //    ﻿template<typename Type>
    //    Type Max(const Type & a, const Type & b)
    //    {

    //        cout << "This is Max<Type>" << endl;

    //        return a > b ? a : b;

    //    }

    //    template<>

    //    int Max<int>(const int& a, const int& b)

    //    {

    //        cout << "This is Max<int>" << endl;

    //        return a > b ? a : b;

    //    }

    //    template<>

    //    char Max<char>(const char& a, const char& b)

    //    {

    //        cout << "This is Max<char>" << endl;

    //        return a > b ? a : b;

    //    }

    //    int Max(const int& a, const int& b)

    //    {

    //        cout << "This is Max" << endl;

    //        return a > b ? a : b;

    //    }

    //    int main()

    //    {

    //        Max(10, 20);

    //        Max(12.34, 23.45);

    //        Max('A', 'B');

    //        Max<int>(20, 30);

    //        return 0;

    //    }
    //}

class A
{
public:

  void f() { cout << "A::f()" << endl; }
  int a;

};


class B : public A
{

public:

    void f(int a) { cout << "B::f()" << endl; }

    int a;

};

int main()
{
    B b;

    b.f();

    return 0;
}